A computer system is loaded with an install image of system software (hereinafter, “install image”) that enables the computer system to boot and execute the system software. Presently, several techniques may be used to load an install image onto a computer system, the most popular and effective technique being compact disk (CD)-based installations and network-based installations. A CD-based installation involves inserting an installation CD into a computer system that is configured to execute installation code (hereinafter, “executable image”) stored on the installation CD. FIG. 1 is a block diagram of the CD-based technique of loading an install image 112 into a computer system. As shown, compact disk 127 includes a boot loader 100, an executable image 104 and an install image 112. Executable image 104 includes a kernel 106, files 110 and an installer 108, while install image 112 includes a kernel 114 and compressed files 116. Boot loader 100 is copied by, e.g., bootstrapping software included in the computer system from compact disk 127 to memory 122. In this way, a central processing unit (CPU) in the computer system may read and execute boot loader 100 from memory 122. Boot loader 100 is executed to copy executable image 104 from compact disk 127 to memory 122. Then, installer 108 is executed to copy install image 112 from compact disk 127 to memory 122. Upon completion of copying executable image 104 and install image 112 to memory 122, boot loader 100 then executes kernel 106.
Kernel 106 is dependent on files 110 for proper execution. Examples of such files 110 include TAR files that when extracted provide a directory used by kernel 106 to programmatically perform the loading of install image 112 into the computer system. Files 110 may also include general data that is accessible via the directory used by kernel 106 to copy install image 112 into storage device 126. Specifically, kernel 106 is configured to execute installer 108, which performs the loading of install image 112 into the computer system by copying install image 112 from memory 122 or compact disk 127 to storage device 126. When the computer system is restarted, the install image 112 is loaded into memory 122 by boot loader 120. As known in the art, install image 112 is in a format, such that when it is load into memory 112, the computer system can begin executing system software.
As mentioned above, network-based techniques may also be used to load an install image 112 into a computer system. FIG. 2 is a block diagram of a network-based technique of loading an install image 214 into the computer system. Using conventional network boot techniques, boot loader 200 is copied from network boot server 240 into memory 122 and executed. Boot loader 200 is then executed to copy executable image 204 and the contents thereof from network boot server 240 to memory 122. Upon completion of copying executable image 204 to memory 122, boot loader 200 executes kernel 206, which executes installer 210. Subsequently, driver 212, under the control of installer 210, retrieves install image 214 from network boot server 240 and loads it directly into storage device 126.
Extracting install image 214—which includes kernel 216, compressed files 218, and boot loader 220—from network boot server 240 provides several ease-of-use advantages. For example, an administrator does not have to burn a CD, verify it, walk over to a server in a noisy datacenter, find a terminal, power on the machine on, and wait during the installation. With network-based techniques, the entire process can be done remotely. Unfortunately, network-based techniques suffer from similar problems to those described above in conjunction with FIG. 1. For example, the install image 214 must still at some point be transferred from network boot server 240 to storage device 126, which ultimately results in latencies similar to those described above in conjunction with FIG. 1. Moreover, extracting install image 214 from network boot server 240 is prone to additional complexities, including improper configurations of network boot server 240, packet loss, network failure, and the like.